﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GestionCegep.Objects;
using Oracle.DataAccess.Client;


namespace GestionCegep
{
    // Classe abstraite representant les Cours, les Departements, les Enseignants, les Etudiants et les Inscriptions
    public abstract class PersistentObject
    {
        protected bool isNew;                           //Si l'objet est nouveau et doit être insert dans la BD
        protected bool isModified;                      //Si l'objet a été modifié et doit être update dans la BD
        protected bool isDeleted;                       //Si l'objet est supprimé et doit être supprimé dans la BD

        public PersistentObject Self { get { return this; } }

        public abstract void InsertIntoDataBase(OracleConnection OracleConnection, DataStore dataStore);
        public abstract void UpdateIntoDataBase(MyOracleTransaction currentTransaction);
        public abstract void DeleteFromDataBase(OracleConnection OracleConnection, DataStore dataStore);
        public abstract void LockForUpdate(OracleConnection OracleConnection);
    }
}
